/*getGeoLocation = function(callBack){
	navigator.geolocation.getCurrentPosition( // 该函数有如下三个参数
        function(pos){ // 如果成果则执行该回调函数
			var lat = pos.coords.latitude;
			var lng = pos.coords.longitude;
			sessionStorage.geoLat = lat;
			sessionStorage.geoLng = lng;
        }, function(err){ // 如果失败则执行该回调函数
            alert(err.message);
        }, { // 附带参数
            enableHighAccuracy: false, // 提高精度(耗费资源)
            timeout: 3000, // 超过timeout则调用失败的回调函数
            maximumAge: 1000 // 获取到的地理信息的有效期，超过有效期则重新获取一次位置信息
        }
    );
};
*/
var map, geolocation,v_callback;
//加载地图，调用浏览器定位服务
map = new AMap.Map('mapContainer', {
    resizeEnable: true
});
map.plugin('AMap.Geolocation', function() {
    geolocation = new AMap.Geolocation({
        enableHighAccuracy: false,//是否使用高精度定位，默认:true
        timeout: 3000,          //超过10秒后停止定位，默认：无穷大
        maximumAge: 1000          //定位结果缓存0毫秒，默认：0
    });
    map.addControl(geolocation);
    AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
    AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息
});
//获取当前位置信息
function getCurrentPosition(callback) {
//	sy.closeLoad();
	if (!geolocation){
		map.plugin('AMap.Geolocation', function() {
		    geolocation = new AMap.Geolocation({
		        enableHighAccuracy: false,//是否使用高精度定位，默认:true
		        timeout: 3000,          //超过10秒后停止定位，默认：无穷大
		        maximumAge: 1000          //定位结果缓存0毫秒，默认：0
		    });
		    map.addControl(geolocation);
		    AMap.event.addListener(geolocation, 'complete', onComplete);//返回定位信息
		    AMap.event.addListener(geolocation, 'error', onError);      //返回定位出错信息
		    v_callback = callback;
		    geolocation.getCurrentPosition();
		});
	}else{
		v_callback = callback;
	    geolocation.getCurrentPosition();
	}
}
//监控当前位置并获取当前位置信息
function watchPosition() {
    geolocation.watchPosition();
}
//解析定位结果
function onComplete(data) {
	sy.closeLoad();
    sessionStorage.geoLat = data.position.getLat();
	sessionStorage.geoLng = data.position.getLng();
	if(v_callback)v_callback();
};

//解析定位错误信息
function onError(data) {
	sy.closeLoad();
    var str = '<p>定位失败</p>';
    str += '<p>错误信息：';
    switch (data.info) {
        case 'PERMISSION_DENIED':
            str += '浏览器阻止了定位操作';
            break;
        case 'POSITION_UNAVAILBLE':
            str += '无法获得当前位置';
            break;
        case 'TIMEOUT':
            str += '定位超时';
            break;
        default:
            str += '未知错误';
            break;
    }
    str += '</p>';
    alert(str);
}
